///////////////////////////////////////////////////////////
//  IPage.h
//  Implementation of the Interface IPage
//  Created on:      21-Aug-2013 11:04:24 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_6600862E_F7BC_48b8_988D_F9C2BF1A7943__INCLUDED_)
#define EA_6600862E_F7BC_48b8_988D_F9C2BF1A7943__INCLUDED_

#include "ICollection.h"
#include "IChoices.h"

namespace Data
{
class IPage : public ICollection
{

public:
	enum PageType
	{
		TEXTPAGE_T = 0,
		CHOICEPAGE_T = 1,
		CHECKPAGE_T = 2
	};

	virtual String_t GetName() const =0;
	virtual String_t GetTemplateName() const =0;
	virtual String_t GetTitle() const =0;
	virtual String_t GetComment() const =0;
	virtual IPage::PageType GetPageType() const =0;
	virtual IChoices* GetChoices() const =0;
	virtual void SetName(const String_t& name) =0;
	virtual void SetTemplateName(const String_t& name) =0;
	virtual void SetTitle(const String_t& title) =0;
	virtual void SetComment(const String_t& comment) =0;
  virtual void SetChoices(IChoices* choices) =0;
	virtual void SetPageType(IPage::PageType pageType) =0;
  virtual void SetPageType(const String_t& pageType) =0;
  virtual void ClearItems() =0;
  virtual void CopyPage(IPage* tempPage) =0;
  virtual void UpdateTemplateTime() =0;
  virtual void UpdateBuildTime() =0;
  virtual void SetTemplateTime(String_t datetime) =0;
  virtual void SetBuildTime(String_t datetime) =0;
  virtual String_t GetTemplateTime() const =0;
  virtual String_t GetBuildTime() const =0;
};
}
#endif // !defined(EA_6600862E_F7BC_48b8_988D_F9C2BF1A7943__INCLUDED_)
